/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tesis.domain;

import java.io.Serializable;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author hugo
 */
@Entity
@Table(name = "regla_x_parametro_documento")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ReglaXParametroDocumento.findAll", query = "SELECT r FROM ReglaXParametroDocumento r"),
    @NamedQuery(name = "ReglaXParametroDocumento.findByIdreglaxparametrodocumento", query = "SELECT r FROM ReglaXParametroDocumento r WHERE r.idreglaxparametrodocumento = :idreglaxparametrodocumento"),
    @NamedQuery(name = "ReglaXParametroDocumento.findByEsentrada", query = "SELECT r FROM ReglaXParametroDocumento r WHERE r.esentrada = :esentrada")})
public class ReglaXParametroDocumento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @SequenceGenerator(name = "regla_x_parametro_documento_idreglaxparametrodocumento_seq", sequenceName = "regla_x_parametro_documento_idreglaxparametrodocumento_seq")
    @GeneratedValue(generator="regla_x_parametro_documento_idreglaxparametrodocumento_seq",strategy=GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idreglaxparametrodocumento", nullable = false)
    private Integer idreglaxparametrodocumento;
    @Basic(optional = false)
    @Column(name = "esentrada", nullable = false)
    private char esentrada;
    @JoinColumn(name = "idregla", referencedColumnName = "idregla", nullable = false)
    @ManyToOne(optional = false)
    private Regla idregla;
    @JoinColumn(name = "idparametrodocumento", referencedColumnName = "idparametrodocumento", nullable = false)
    @ManyToOne(optional = false,cascade= CascadeType.ALL)
    private ParametroDocumento idparametrodocumento;

    public ReglaXParametroDocumento() {
    }

    public ReglaXParametroDocumento(Integer idreglaxparametrodocumento) {
        this.idreglaxparametrodocumento = idreglaxparametrodocumento;
    }

    public ReglaXParametroDocumento(Integer idreglaxparametrodocumento, char esentrada) {
        this.idreglaxparametrodocumento = idreglaxparametrodocumento;
        this.esentrada = esentrada;
    }

    public Integer getIdreglaxparametrodocumento() {
        return idreglaxparametrodocumento;
    }

    public void setIdreglaxparametrodocumento(Integer idreglaxparametrodocumento) {
        this.idreglaxparametrodocumento = idreglaxparametrodocumento;
    }

    public char getEsentrada() {
        return esentrada;
    }

    public void setEsentrada(char esentrada) {
        this.esentrada = esentrada;
    }

    public Regla getIdregla() {
        return idregla;
    }

    public void setIdregla(Regla idregla) {
        this.idregla = idregla;
    }

    public ParametroDocumento getIdparametrodocumento() {
        return idparametrodocumento;
    }

    public void setIdparametrodocumento(ParametroDocumento idparametrodocumento) {
        this.idparametrodocumento = idparametrodocumento;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idreglaxparametrodocumento != null ? idreglaxparametrodocumento.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ReglaXParametroDocumento)) {
            return false;
        }
        ReglaXParametroDocumento other = (ReglaXParametroDocumento) object;
        if ((this.idreglaxparametrodocumento == null && other.idreglaxparametrodocumento != null) || (this.idreglaxparametrodocumento != null && !this.idreglaxparametrodocumento.equals(other.idreglaxparametrodocumento))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entity.ReglaXParametroDocumento[ idreglaxparametrodocumento=" + idreglaxparametrodocumento + " ]";
    }
    
}
